home *** CD-ROM | disk | FTP | other *** search
- Path: fido.asd.sgi.com!austern
- From: jsa@edg.com (J. Stephen Adamczyk)
- Newsgroups: comp.std.c++
- Subject: Re: inconsistance in over.over
- Date: 01 Feb 1996 09:22:45 PST
- Organization: Edison Design Group Inc.
- Approved: austern@isolde.mti.sgi.com
- Message-ID: <DM3LI3.EJ1@edg.com>
- References: <4eo2mk$7tc@boy.nmd.msu.ru>
- NNTP-Posting-Host: isolde.mti.sgi.com
- X-Original-Date: Thu, 1 Feb 1996 13:01:15 GMT
- Apparently-To: comp-std-c++@uunet.uu.net
- X-Auth: PGPMoose V1.1 PGP comp.std.c++
- iQBVAwUBMRD2+Ey4NqrwXLNJAQFRqQIAmKowypwOGHGyMUkW9Vaz5uDufzlI/9M6
- FAz+II65Koc0pZywBXYtoy5EAInOERGqbYQFf4TpJKfPR0d/dEjEyg==
- =wmUS
- Originator: austern@isolde.mti.sgi.com
-
- In article <4eo2mk$7tc@boy.nmd.msu.ru> krotoff@such.srcc.msu.su (Alexander Krotoff) writes:
- >There is small inconsistance in the Oct 95 WP:
- >-----------------------------------------------------------------------
- >13.4 Address of overloaded function [over.over]
- >In the example on the end of the section:
- >
- > int (X::*p5)(int) = &(X::f); // error: wrong syntax for</B>
- > // pointer to member</B>
- > int (*p6)(long) = &(X::f); // OK</B>1
- >
- >Error: qualified-id enclosed in parentheses.
- >-----------------------------------------------------------------------
- >5.3.1 Unary operators [expr.unary.op]
- >
- >3 A pointer to member is only formed when an explicit & is used and
- > its operand is a qualified-id not enclosed in parentheses.
- >-----------------------------------------------------------------------
- >
- >I suppose the error is in the over.over.
-
- Why do you think there's an error? The point of the example in over.over
- is that something like X::f can represent a set of overloaded functions,
- some of which are nonstatic member functions and some of which are static
- member functions. That set is subjected to overload resolution, and one
- of the functions is chosen. If the one chosen is a nonstatic member function,
- then the form used must be &X::f. But if the one chosen is a static
- member function, the form can be X::f or &X::f or &(X::f) etc., because
- any of those is a valid form for the address of a static member function.
-
- Steve Adamczyk
- Edison Design Group
- ---
- [ comp.std.c++ is moderated. Submission address: std-c++@ncar.ucar.edu.
- Contact address: std-c++-request@ncar.ucar.edu. The moderation policy
- is summarized in http://dogbert.lbl.gov/~matt/std-c++/policy.html. ]
-